laws of logic discrete math